package com.puboot.module.admin.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.puboot.common.util.CoreConst;
import com.puboot.common.util.IdcardValidatorUtil;
import com.puboot.common.util.ResultUtil;

import com.puboot.module.admin.model.BizTeacher;
import com.puboot.module.admin.service.BizTeacherService;
import com.puboot.module.admin.vo.base.PageResultVo;
import com.puboot.module.admin.vo.base.ResponseVo;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

import java.util.Date;

/**
 * 老师管理
 *
 * @author ltc
 * @version 1.0
 * @date 2020/9/27 21:10
 */
@Controller
@RequestMapping("/teacher")
@AllArgsConstructor
public class BizTeacherController {
    private final BizTeacherService bizTeacherService;

    @GetMapping("/add")
    public String add() {
        return CoreConst.ADMIN_PREFIX + "teacher/form";
    }



    @PostMapping("list")
    @ResponseBody
    public PageResultVo loadTeachers(BizTeacher bizTeacher, Integer pageNumber, Integer pageSize) {
        IPage<BizTeacher> bizTagsPage = bizTeacherService.PageTeachers(bizTeacher, pageNumber, pageSize);
        return ResultUtil.table(bizTagsPage.getRecords(), bizTagsPage.getTotal());
    }

    @PostMapping("/add")
    @ResponseBody
    public ResponseVo add(BizTeacher bizTeacher) {
        Date date = new Date();
        bizTeacher.setCreateTime(date);
        bizTeacher.setUpdateTime(date);
        bizTeacher.setStatus(1);
        boolean i = bizTeacherService.save(bizTeacher);
        if (i)
            return ResultUtil.success("新增老师成功");
        return ResultUtil.error("新增老师失败");
    }

    @GetMapping("/edit")
    public String edit(Model model, Integer id) {
        BizTeacher bizTeacher = bizTeacherService.getById(id);
        model.addAttribute("teacher", bizTeacher);
        return CoreConst.ADMIN_PREFIX + "teacher/form";
    }

    @PostMapping("/edit")
    @ResponseBody
    public ResponseVo edit(BizTeacher bizTeacher) {
        bizTeacher.setUpdateTime(new Date());
        boolean i = bizTeacherService.updateById(bizTeacher);
        if (i)
            return ResultUtil.success("编辑老师成功");
        return ResultUtil.error("编辑老师失败");

    }

    @PostMapping("/delete")
    @ResponseBody
    public ResponseVo delete(Integer id) {
        boolean i = bizTeacherService.removeById(id);
        if (i)
            return ResultUtil.success("删除老师成功");
        return ResultUtil.error("删除老师失败");

    }

    @PostMapping("/batch/delete")
    @ResponseBody
    public ResponseVo deleteBatch(@RequestParam("ids[]") Integer[] ids) {
        int i = bizTeacherService.deleteBatch(ids);
        if (i > 0)
            return ResultUtil.success("删除老师成功");
        return ResultUtil.error("删除老师失败");
    }
}
